
#include "../header.h"

/**
 * @函数原型: pid_t fork(void);
 * @函数功能: create a child process  创建一个子进程。
 * 其子进程会复制父进程的数据与堆栈空间，并继承父进程的用户代码，组代码，环境变量、已打开的文件代码、
 * 工作目录和资源限制等。
 * @参数说明: 
 * @返回值:  0 : 当前进程是子进程。
 *          大于0 ： 当前进程是父进程，返回时的是子进程的pid
 *          -1：失败。
 * @param {int} argc
 */
//进程独立性

int main(int argc, char const *argv[])
{
    //fork test
    pid_t pid = fork();
    if(pid < 0)
    {
        perror("fork error\n");
    }
    //当前进程是父进程  pid是子进程ID
    if(pid > 0 ) //父进程空间
    {   
        while(1)
        {
            printf("this is parents process:%d %d= childpid =%d \n",getpid(),getppid(),pid);
            sleep(1);
        }
     }
    //当前进程是子进程
    if(pid == 0)  //子进程空间
    {
        while (1)
        {
           printf("this is child process :%d %d\n",getpid(),getppid());
           sleep(1);
        }
     }
    return 0;
}

